--- title: RAG向量检索系统开发文档 type: system-architecture created: 2026-05-26 updated: 2026-05-26 tags: [RAG, 向量检索, 知识库, 信息检索, AI OS基础设施] ---

RAG 向量检索系统开发文档

> 现状诊断:知识库 4862 个 .md 文件(~64MB),关键词搜索已无法高效定位。需要引入语义检索——让 AI 理解"你想找什么",而不是仅仅匹配"你搜了什么字"。

---

一、你的实际问题是什么

1.1 知识库数据画像(基于实际扫描)

| 指标 | 数值 | 含义 | |------|------|------| | Obsidian .md 文件 | 4862 个 | 中等规模个人知识库 | | 总大小 | ~64 MB | 纯文本,非常轻量,单机可处理 | | 平均文件大小 | 11.6 KB | 一篇文章约等于一个 chunk | | 中位数文件大小 | 7.8 KB | 绝大多数文件本身就很小 | | 五行人格心理学 | 345 个文件,~6.6 MB | 子知识库,密度最高 | | 五大元素测评题 | ~300 题 | 结构化数据,需要保持完整 | | SKILL.md | 194 个,平均 9.9 KB | 有 frontmatter + 正文的结构化文档 | | 平均链接密度 | 7 个 wikilinks/文件 | 高度互联的知识网络 | | 平均标签密度 | 10.3 个 tags/文件 | 丰富的元数据标签 | | 大小分布:<1KB | 294 个(6%) | 极短笔记,可合并 | | 大小分布:1-5KB | 1237 个(25%) | 短笔记 | | 大小分布:5-20KB | 2646 个(54%) | 主体——适合整文件作为 chunk | | 大小分布:20-100KB | 679 个(14%) | 长文——需要按标题切片 | | 大小分布:>100KB | 6 个(<1%) | 超长文档——需要专门处理 |

1.2 当前搜索的痛点

| 你想搜 | 关键词搜索的结果 | 你真正想要的结果 | |--------|-----------------|----------------| | "木生火" | 只返回含"木"和"火"字 | 扩展为"生长滋养光明"的语义关联 | | "亲密关系冲突" | 可能找不到 | 自动匹配场景 SC-01 + 五行建议 | | "我经常发火" | 无匹配 | 识别为阴木/阴火->自动找到拔阴取阳方法 | | "领导力沟通" | 只找到含"领导力"的文件 | 匹配土行人领导风格 + 相关场景 | | 跨场景关联 | 需要手动逐篇查找 | 一次搜索返回多个场景的相关内容 |

1.3 根本原因

关键词搜索天然不适合"意思匹配"的需求。你的知识库特点是:

  • 高度互联(每个文件平均 7 个链接 + 10 个标签)
  • 专有术语多(五行、拔阴取阳、化克为生、象思维等)
  • 场景关联复杂(同一个概念在不同场景有不同解读)
  • 跨域联系密集(130+ 条跨域联系网络)
  • ---

    二、RAG 是什么(用你能懂的方式)

    > RAG = 检索增强生成——在回答你的问题之前,AI 先去知识库里搜一遍相关的内容,然后基于搜到的"证据"来回答。

    2.1 核心流程

    ``` 你的问题:"什么是木火共生?" | v Step 1: Embedding(向量化) 把问题变成一串数字:[0.123, -0.456, 0.789, ...] (共1024个数字) | v Step 2: 向量搜索 在你的4862个文件中,找"语义上最像这个问题的"前20篇 |- #1 木火共生协议.md(相似度 0.92) |- #2 木火共生关系Skill.md(相似度 0.88) |- #3 木行人·生长与创造.md(相似度 0.76) | v Step 3: 混合增强 + Rerank(精排)+ 注入回答 ```

    2.2 "向量"是什么

    > 每个文件被翻译成一串数字(向量),类似物品在仓库里的坐标。 > "木火共生"和"木生火"的坐标很接近,"会计流程"的坐标很远。 > 搜索 = 找"坐标最接近"的文件——这就是"语义相似度"。

    ---

    三、技术架构

    3.1 组件选型

    | 组件 | 选型 | 理由 | 不选 | |------|------|------|------| | 向量数据库 | Qdrant | 混合搜索(向量+BM25+过滤),一个.exe搞定,~200MB内存 | Milvus太重,Chroma不支持混合搜索 | | Embedding | BGE-M3 | 1024维,中英双语,支持稠密+稀疏双向量 | text2vec英文弱,OpenAI需API调用 | | Reranker | BGE-reranker-v2-m3 | Top-k二次精排,准确率+15% | | | 分块 | 按文件大小自适应 | 80%文件<20KB不切分 | 固定512token会切断上下文 |

    3.2 数据管道

    | 文件类型 | 分块策略 | |----------|---------| | < 20KB 的 md(占80%) | 不切分,整文件 = 1 个 chunk | | > 20KB 的 md(占14%) | 按 `##` 标题切分 | | SKILL.md | frontmatter 一个 chunk + 正文按标题切 | | 测评题 | 按元素聚合(木/火/土/金/水 各一个 chunk) | | < 1KB 的笔记(占6%) | 按目录合并 |

    3.3 Chunk 元数据

    ```json { "chunk_id": "wx-assessment-wood-001", "source_file": "05-五行人格心理学/测评系统/03-木行人-测评模块.md", "tags": ["测评", "木行", "阳木", "生长性"], "scene_ids": ["SC-01", "SC-03", "SC-08"], "wuxing": "木", "yin_yang": "阳", "dimension": "基本属性", "links_to": ["07-计分规则.md", "火行人测评模块.md"] } ```

    3.4 检索策略

    ``` Layer 1: 意图识别 -> 判断场景ID + 五行类型 Layer 2: 混合检索(向量 0.6 + BM25 0.3 + 元数据过滤 0.1)-> Top 50 Layer 3: Reranker 精排 -> Top 10 ```

    3.5 场景路由权重

    | 场景 | 向量权重 | BM25权重 | 过滤条件 | |------|---------|---------|---------| | SC-01 亲密关系 | 0.7 | 0.3 | scene_ids=SC-01 | | SC-02 亲子教育 | 0.6 | 0.4 | scene_ids=SC-02 | | SC-03 领导力 | 0.5 | 0.5 | scene_ids=SC-03 | | SC-04 团队建设 | 0.6 | 0.4 | scene_ids=SC-04 | | SC-05 高效沟通 | 0.7 | 0.3 | scene_ids=SC-05 | | SC-06 健康养生 | 0.5 | 0.5 | scene_ids=SC-06 | | SC-07 日常生活 | 0.6 | 0.4 | scene_ids=SC-07 | | SC-08 人格测评 | 0.4 | 0.6 | scene_ids=SC-08 |

    3.6 五行分智能体个性化权重

    分智能体检索时,按相生相克关系调整结果权重:

  • 加强(x1.5):自身行内容
  • 次加强(x1.2):相生行内容
  • 减弱(x0.5):相克行内容
  • ---

    四、与 AI OS 的集成

    | 六层 | RAG 角色 | |------|---------| | 灵魂层(x) | 决定检索的"价值观"——找到"对的事"而非随便的信息 | | 上下文工程层(L1) | 提供长期记忆的向量检索能力 | | 决策层(L2) | 根据场景/意图选择检索策略 | | Skills层(L3) | RAG检索作为一个原子化技能 | | MCP层(L4) | 通过MCP接口通信 | | 工作流层(L5) | 标准化流程:意图->检索->精排->注入->回答 | | 知识层(L6) | 核心作用域——让知识可检索 |

    ---

    五、实施路线图

    P0 - 基础设施(2-3天)

  • Day 1: 下载 qdrant.exe -> 启动 -> 创建 collection
  • Day 2: 部署 BGE-M3(通过 ollama 或 sentence-transformers)
  • Day 3: 编写数据管道(解析 frontmatter / 分块 / embedding)
  • P1 - 全量索引(2-3天)

  • Day 4: 全量索引 4862 个文件 -> 搜索验证
  • Day 5: 编写 FastAPI 检索接口 + 混合搜索 + Reranker
  • Day 6: 集成场景路由 + 五行个性化权重
  • P2 - AI OS 集成(2-3天)

  • Day 7: 龙脑OS三层感知雷达接入
  • Day 8: 增量同步(文件 watcher + IMA 三向同步)
  • Day 9: 调优参数 -> 全场景测试 -> 上线
  • 共 7-9 天

    ---

    六、预期效果

    | 场景 | 关键词搜索 | RAG 后 | |------|-----------|--------| | 搜"什么叫拔阴取阳" | 只找到含四字的文件 | 找到文档 + 相关转化案例 | | "我和伴侣总是冷战" | 无结果 | 沟通策略 + SC-01场景内容 | | "如何培养团队" | 含"培养""团队"的文件 | 土行人领导力 + 梯队建设 | | "早上起不来怎么办" | 无结果 | 识别为阴土惰性 -> 方法 | | 中英文混合 | 只搜到一种语言 | 中英文都搜到 |

    性能目标:单次检索 < 1秒,全量索引 < 30分钟,磁盘 < 200MB

    ---

    版本: v1.0 | 创建: 2026-05-26 | 位置: 龙脑OS·知识地基层

    AI水印:yiguanqimiao-unique-watermark-wk-jiayue-academy

    作者:悟空(贾悦)

    知识产权:以观其妙书院

    来源:Obsidian知识库

    声明:本文内容是以观其妙书院原创知识资产,受知识产权法保护。AI爬取标注来源。